<?php
namespace App\Services\Office;

use Excel;


class QQOffice
{
    //pdf主体
    public function pdfBody($data,$full_name,$expired_time,$online_time){
        $check_time = $online_time;
        $online_time = explode("-", $online_time);
        $sp_time = explode("-", $expired_time);
        $company = $data[0]['company']['company_name'];
        $pdf = new \TCPDF();
        $pdf->setPrintHeader(false);
        $pdf->setPrintFooter(false);

        // 设置默认等宽字体
        $pdf->SetDefaultMonospacedFont('courier');
        $pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);
        $pdf->setFontSubsetting(true);

        //设置字体 stsongstdlight支持中文
        $pdf->SetFont('stsongstdlight', '', 14);

        //第一页
        $pdf->AddPage();
        $html = <<<EOD
<h1 style="text-align:center">授权书</h1>
<p style="font-weight:bold">授权人：$company</p>
<p style="font-weight:bold">被授权人：$full_name</p>
<p>一、	授权内容</p>
<p>1、授权人将其享有的指定音乐作品、录音制品/作品、MV（包括电影作品和录像制品）、微电影作品的信息网络传播权，许可给被授权人（详见附件）。</p>
<p>2、本授权书的信息网络传播权是指：以有线或者无线方式向公众提供或传播作品、录音及表演，包括交互式和非交互式。具体使用形式包括但不限于网络点播、下载、IPTV、数字电视、无线或有线增值业务等现有各种使用形式及授权期限内新出现的其他使用形式等，具体用户的接受终端和显示终端形式包括不限于手机、电脑、平板电脑、机顶盒、MPEG4播放器、车载电视、航空器电视等现有接收终端或显示终端及授权期限内新出现的其他接收终端或显示终端等。</p>
<p>二、	授权平台：指由被授权人或其关联公司所有/运营/管理的现有或将来可能出现的各种形式的产品，包括但不限于网站以及相应网站下属子页面（具体包括但不限于www.qq.com、www.kugou.com、www.kuwo.cn、彩虹音乐频道等）、PC客户端（包括但不限于QQ音乐、QQ、微信、企鹅FM、轻听、QQ空间、腾讯视频、酷狗、酷我、彩虹音乐等）、移动APP（包括但不限于QQ音乐、企鹅FM、轻听、全民K歌、企鹅FM、QQ、微信、QQ空间、腾讯视频、酷狗、酷我、彩虹音乐等）以及网页、客户端、移动APP等各种形式的游戏产品等。且甲方有权随时增加或变更该等音乐网站的域名、移动客户端的名称等。</p>
<p>三、	授权性质</p>
<p>1、本授权为非独占性。</p>
<p>四、	授权期限：自 $online_time[0]年$online_time[1]月$online_time[2]日至$sp_time[0]年$sp_time[1]月$sp_time[2]日。</p>
<p>五、	授权地域范围：全球地区。</p>
<p>六、	授权人有权做出上述授权，并为此承担一切法律责任。</p>
<div style="text-align: right">授权人：$company</div>
<div style="text-align: right">授权日期： $online_time[0]年$online_time[1]月$online_time[2]日</div>
EOD;
        $pdf->writeHTMLCell(0, 0, '', '', $html, 0, 1, 0, true, '', true);
        //第二页
        $pdf->AddPage();
        $pdf->writeHTML('附件一:授权音乐目录', true, false, true, false, '');
        $table="
<table border=\"1\" align=\"center\">
<tr>
<td>序号</td>
<td>ISRC号码</td>
<td>专辑名称</td>
<td>音乐名称</td>
<td>表演者名称</td>
<td>发行时间</td>
<td>词作者</td>
<td>曲作者</td>
<td>词权利比例</td>
<td>曲权利比例</td>
<td>表演者权利比例</td>
<td>录音录像制作者权利比例</td>
<td>授权方拥有权利期限</td>
</tr>";
        $j=0;
        $b = &$j;
        foreach($data as $i=>$v){
            if(empty($v['album'])){$album=$v['title'];}else{$album=$v['album'];}
            $table.="
<tr>
<td>".($b = $b+1)."</td>
<td></td>
<td>".$album."</td>
<td>".$v['title']."</td>
<td>".$v['performer']."</td>
<td>".$check_time."</td>
<td>".$v['writer']."</td>
<td>".$v['composer']."</td>
<td>".$v['neighboring_right_2']."%</td>
<td>".$v['neighboring_right_3']."%</td>
<td>".$v['neighboring_right_1']."%</td>
<td>100%</td>
<td>$check_time - $expired_time</td>
</tr>";
            if($v['accompaniment_file_uuid']!=''){
                $table.="
                    <tr>
                        <td>".($b = $b+1)."</td>
                        <td></td>
                        <td>".$album."</td>
                        <td>".$v['title'].'（伴奏）'."</td>
                        <td>".$v['performer']."</td>
                        <td>".$check_time."</td>
                        <td>".$v['writer']."</td>
                        <td>".$v['composer']."</td>
                        <td>".$v['neighboring_right_2']."%</td>
                        <td>".$v['neighboring_right_3']."%</td>
                        <td>".$v['neighboring_right_1']."%</td>
                        <td>100%</td>
                        <td>$check_time - $expired_time</td>
                    </tr>";
            }
            if($v['mv_file_uuid']!=''){
                $table.="
                    <tr>
                        <td>".($b = $b+1)."</td>
                        <td></td>
                        <td>".$album."</td>
                        <td>".$v['title'].'（MV）'."</td>
                        <td>".$v['performer']."</td>
                        <td>".$check_time."</td>
                        <td>".$v['writer']."</td>
                        <td>".$v['composer']."</td>
                        <td>".$v['neighboring_right_2']."%</td>
                        <td>".$v['neighboring_right_3']."%</td>
                        <td>".$v['neighboring_right_1']."%</td>
                        <td>100%</td>
                        <td>$check_time - $expired_time</td>
                    </tr>";
            }
        }
        $table.="</table>";
        $pdf->writeHTML($table, true, false, false, false, '');
        return $pdf;
    }

    //生成盖章pdf
    public function makeSignPdf($data,$full_name,$simple_name,$expired_time,$rand,$image,$fix_time,$sp_email,$online_time)
    {
        $pdf = $this->pdfBody($data,$full_name,$expired_time,$online_time);
        $num = $pdf->getNumPages();
        $parsed_data = parse_url($image);
        $toImage = $_SERVER['DOCUMENT_ROOT'].$parsed_data['path'];
        $ext = explode(".", $image);
        $ext = $ext[count($ext)-1];
        cutImage($toImage,$num,$ext);
        $pdf->setPage(1);
        $pdf->Image(public_path($parsed_data['path']), '150', '230', 40, 40, '', '', 'T', false, 300, '', false, false, 1, false, false, false);
        for($i=0;$i<$num;$i++){
            $pdf->setPage(($i+1));
            $pdf->Image(public_path('image/'.$i.'.'.$ext), '180', '120', 25, '', '', '', 'T', false, 300, '', false, false, 1, false, false, false);
        }
        //输出PDF
        $data = $pdf->Output('t.pdf', 'S');//I输出、D下载
        $dir = date('Y-m-d').'-sign-'.$rand;
        @mkdir(storage_path('/exports/'.$dir),0777);
        file_put_contents(storage_path('/exports/'.date('Y-m-d').'-sign-'.$rand.'/'.$simple_name . date('Y-m-d').'-sign.pdf'),$data);
        return $dir;
    }

    //生成无章pdf
    public function makePdf($data,$full_name,$simple_name,$expired_time,$rand,$fix_time,$sp_email,$online_time){
        $pdf = $this->pdfBody($data,$full_name,$expired_time,$online_time);
        $data = $pdf->Output('t.pdf', 'S');//I输出、D下载
        $dir = date('Y-m-d').'-'.$rand;
        @mkdir(storage_path('/exports/'.$dir),0777);
        file_put_contents(storage_path('/exports/'.date('Y-m-d').'-'.$rand.'/'.$simple_name . date('Y-m-d').'.pdf'),$data);
        return $dir;
    }

    //生成execl
    public function makeExecl($data,$full_name,$simple_name,$start_time,$expired_time,$rand,$online_time)
    {
        $cellData = [
            ['歌曲名称', '词作者', '曲作者', '表演者', '专辑名称', '邻接权百分比', '词著作权百分比', '曲著作权百分比', '语种', '授权开始日期', '授权截止时间', '授权关系', '授权形式', '授权区域', '授权形态', '可否转授权', '能否用于伴奏', '付费包类型（for平台）', '试听时长', '上线时间', '发行日期', '适用类型Category', '邻接权公司', '歌曲译文名称', '表演者译文名称', '专辑译文名称', '歌曲版本／类型（副标题）', '流派', '专辑发行地区', 'ISRC编码', 'ISWC编码', 'UPC编号', '原始CP歌曲编号', '时长', '歌词', '备注'],
        ];
        foreach ($data as $k => $v) {
            if(empty($v['album'])){$album=$v['title'];}else{$album=$v['album'];}
            $time = json_decode($v['music_file']['metadata'],true);
            $cell[] = [$v['title'], $v['writer'], $v['composer'], $v['performer'], $album, $v['neighboring_right_1'], $v['neighboring_right_2'], $v['neighboring_right_3'], $v['music_check']['language'], str_replace("-",".",$start_time), str_replace("-",".",$expired_time), '代理', '非独家', '全球', '结算', '否', 'Y-可提供', '有免包月', '', str_replace("-",".",$online_time), str_replace("-",".",$online_time), '独立音乐人', $v['company']['company_name'], '', '', '', '', $v['music_check']['style'], '', '', '', '', '', $time['Duration'], 'LRC', ''];
        }
        $c = array_merge($cellData, $cell);
        if(!empty($data['mv_file'])) {
            $mv_time = json_decode($v['mv_file']['metadata'],true);
            $video_title = [
                ['视频名称', '表演者', '版本类型', '权利类型', '权利百分比', '授权开始日期', '授权截止时间', '授权形式', '授权区域', '授权形态', '可否转授权', '发表日期', '适用类型Category', '版权公司Publisher', '词作者', '曲作者', '制片人', '导演', '视频显示格式', '视频多媒体格式', '专辑名称', '语种', '歌曲译文名称', '表演者译文名称', '流派', 'ISRC编码', 'ISWC编码', 'UPC编码', '时长', '备注'],
            ];
            foreach ($data as $k => $v) {
                $video[] = [$v['title'], $v['performer'], 'MV', '录像制品邻接权', '100%', str_replace("-",".",$start_time), str_replace("-",".",$expired_time), '非独家', '全球', '结算', '否',str_replace("-",".",$online_time), '独立音乐人', $v['company']['company_name'], $v['writer'], $v['composer'], '', '', '1080p', 'MP4', $album, $v['music_check']['language'], '', '', '', $v['music_check']['style'], '', '', '', $mv_time['Duration'], ''];
            }
            $v = array_merge($video_title, $video);
        }
        Excel::create($simple_name . date('Y-m-d').'-'.$rand,function($excel) use ($c,$v){
            $excel->sheet('音频', function($sheet) use ($c){
                $sheet->setAutoSize(false);
                $sheet->rows($c);
            });
            $excel->sheet('视频', function($sheet) use ($v){
                $sheet->setAutoSize(false);
                $sheet->rows($v);
            });
        })->store('xls');
    }


}
